Interprocedural Symbolic Evaluation of Ada Programs with Aliases 1 Symbolic Evaluation

نویسنده

  • B. Burgstaller
چکیده

Symbolic Evaluation is a technique aimed at determining dynamic properties of programs. We extend our intraprocedural data-ow framework introduced in 3] to support interprocedural symbolic evaluation. Our data-ow framework utilizes a novel approach based on an array algebra to handle aliases induced by procedure calls. It serves as as a basis for static program analysis (e.g. reaching deenitions-, alias analysis, worst-case performance estimations, cache analysis). Examples for reaching deenitions-as well as alias analysis are presented. In this section we introduce the basics of interprocedural symbolic evaluation as it is used throughout the paper. We abstract from intraprocedural evaluation details such as conditional or repetitive statements in order to be concise. Treatment of intraprocedural symbolic analysis of Ada programs can be found in 3]. Symbolic evaluation is a form of static program analysis in which symbolic expressions are used to denote the values of program variables and computations (cf. e.g. 5]). In addition a path condition describes the impact of the program's control ow onto the values of variables and the condition under which control ow reaches a given program point. The underlying program representation for symbolic evaluation is usually the control ow graph (CFG), a directed labelled graph. Its nodes are the program's basic blocks (a basic block is a single entry, single exit, sequence of statements), whereas its edges represent transfers of control between basic blocks. Each edge of the CFG is assigned a condition which must evaluate to true for the program's control ow to follow this edge. Entry and Exit are distinguished nodes used to denote start and terminal node.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Symbolic Data Flow Analysis for Detecting Deadlocks in Ada Tasking Programs

It is well accepted that designing and analyzing concurrent software-components are tedious tasks. Assuring the quality of such software requires formal methods, which can statically detect deadlocks. This paper presents a symbolic data ow analysis framework for detecting deadlocks in Ada programs with tasks. The symbolic data ow framework is based on symbolic evaluation { an advanced technique...

متن کامل

Demand-Driven Compositional Symbolic Execution

We discuss how to perform symbolic execution of large programs in a manner that is both compositional (hence more scalable) and demand-driven. Compositional symbolic execution means finding feasible interprocedural program paths by composing symbolic executions of feasible intraprocedural paths. By demand-driven, we mean that as few intraprocedural paths as possible are symbolically executed in...

متن کامل

Interprocedural Parallelization Analysis: Preliminary Results

This paper describes a fully interprocedural automatic parallelization system for Fortran programs, and presents the results of extensive experiments obtained using this system. The system incorporates a comprehensive and integrated collection of analyses including dependence, privatization and reduction recognition for both array and scalar variables, and scalar symbolic analysis to support th...

متن کامل

Interprocedural Analysis for Parallelization

This paper presents an extensive empirical evaluation of an interprocedural parallelizing compiler, developed as part of the Stanford SUIF compiler system. The system incorporates a comprehensive and integrated collection of analyses, including privatization and reduction recognition for both array and scalar variables, and symbolic analysis of array subscripts. The interprocedural analysis fra...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 1999